From: Florian Müllner Date: Tue, 30 Oct 2012 17:30:21 +0000 (+0100) Subject: appMenu: Update on icon theme changes X-Git-Tag: archive/raspbian/50.5-1+rpi1~1^2~1013^2^2~5512 X-Git-Url: https://dgit.raspbian.org/%22http://www.example.com/cgi/%22/%22http:/www.example.com/cgi/%22?a=commitdiff_plain;h=04da29c9390cbbc1cfe6653ff1afcc79d68ed000;p=gnome-shell.git appMenu: Update on icon theme changes While we recreate icons on style changes elsewhere, the faded icon in the application menu will stick around after icon theme changes until another application is focused. https://bugzilla.gnome.org/show_bug.cgi?id=687224 --- diff --git a/js/ui/panel.js b/js/ui/panel.js index 29165f6f1..9f3696346 100644 --- a/js/ui/panel.js +++ b/js/ui/panel.js @@ -247,6 +247,10 @@ const AppMenuButton = new Lang.Class({ this._container.connect('get-preferred-height', Lang.bind(this, this._getContentPreferredHeight)); this._container.connect('allocate', Lang.bind(this, this._contentAllocate)); + let textureCache = St.TextureCache.get_default(); + textureCache.connect('icon-theme-changed', + Lang.bind(this, this._onIconThemeChanged)); + this._iconBox = new Shell.Slicer({ name: 'appMenuIcon' }); this._iconBox.connect('style-changed', Lang.bind(this, this._onIconBoxStyleChanged)); @@ -332,6 +336,15 @@ const AppMenuButton = new Lang.Class({ this._updateIconBoxClip(); }, + _onIconThemeChanged: function() { + if (this._iconBox.child == null) + return; + + this._iconBox.child.destroy(); + let icon = this._targetApp.get_faded_icon(2 * PANEL_ICON_SIZE); + this._iconBox.set_child(icon); + }, + _updateIconBoxClip: function() { let allocation = this._iconBox.allocation; if (this._iconBottomClip > 0)